package com.imti.servicedemo;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;

public class MyService extends Service
{

    private static final String TAG = MyService.class.getSimpleName();

    /**
     * 创建服务时首次调用，当服务创建成功后，不会重复调用
     */
    @Override
    public void onCreate()
    {
        super.onCreate();

        Log.d(TAG, "服务创建完成");
    }

    /**
     * 开启服务时调用，并且每次开启服务时，均会调用onStartCommand()
     *
     * @param intent 开启服务时传入的Intent对象
     * @return 服务返回标识 START_STICKY 返回此标识时，即系统资源不足，被系统杀死后，当恢复资源时，服务则自动重启
     */
    @Override
    public int onStartCommand(Intent intent, int flags, int startId)
    {
        Log.d(TAG, "服务启动完成");

        return START_STICKY;
    }

    /**
     * 绑定服务时调用
     *
     * @param intent 绑定服务时传递的Intent
     * @return IBinder 返回到绑定回调的 ServiceConnection.onServiceConnected()中的IBinder参数
     */
    @Override
    public IBinder onBind(Intent intent)
    {
        return new MyBinder();
    }

    /**
     * 当解除绑定时调用
     *
     * @return 是否解绑并可以重新绑定
     */
    @Override
    public boolean onUnbind(Intent intent)
    {
        Log.d(TAG, "解除绑定，允许重新绑定");
        return true;
    }
    /**
     * 重新绑定时调用
     */
    @Override
    public void onRebind(Intent intent)
    {
        super.onRebind(intent);

        Log.d(TAG, "重新绑定服务");
    }
    //用于绑定时返回
    public class MyBinder extends Binder
    {

        public String getStr()
        {
            return "来自Service的字符串";
        }

        public void next()
        {
            nextSong();
        }
    }

    public void nextSong()
    {
        //TODO 切换下一首音频
    }

    //服务销毁时调用
    @Override
    public void onDestroy()
    {
        Log.d(TAG, "服务已停止");
        super.onDestroy();
    }
}